package com.ibm.framework.exception.handler.monitor;

import com.ibm.framework.exception.model.ExceptionInfo;

/**
 * 功能描述：监听的异常信息
 * 
 * @author v_pinzhao
 * 
 */
public class MonitorExceptionInfo extends ExceptionInfo {
    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = -7757513644193423236L;

    /**
     * 系统id
     */
    private String systemId;

    /**
     * 应用id
     */
    private String appId;

    /**
     * 服务端ip
     */
    private String serverIp;

    /**
     * 异常信息
     */
    private ExceptionInfo exceptionInfo;

    /**
     * 构造方法
     * 
     * @param exceptionInfo 异常信息
     */
    public MonitorExceptionInfo(ExceptionInfo exceptionInfo) {
        this.exceptionInfo = exceptionInfo;
    }

    /**
     * 构造方法
     * 
     * @param exceptionInfo 异常信息
     * @param systemId 系统id
     * @param appId 应用id
     * @param serverIp 服务器地址
     */
    public MonitorExceptionInfo(ExceptionInfo exceptionInfo, String systemId, String appId, String serverIp) {
        this.exceptionInfo = exceptionInfo;
        this.systemId = systemId;
        this.appId = appId;
        this.serverIp = serverIp;
    }

    /**
     * 获取异常信息编码
     * 
     * @return 异常信息代码
     */
    public String getCode() {
        return exceptionInfo.getCode();
    }

    /**
     * 获取异常被拦截的时间
     * 
     * @return InterceptTime 异常被拦截的时间
     */
    public String getInterceptTime() {
        return exceptionInfo.getInterceptTime();
    }

    /**
     * 返回异常类
     * 
     * @return ExceptionClass 异常类
     */
    public String getExceptionClass() {
        return exceptionInfo.getExceptionClass();
    }

    /**
     * 返回异常消息
     * 
     * @return ExceptionMessage 异常消息
     */
    public String getExceptionMessage() {
        return exceptionInfo.getExceptionMessage();
    }

    /**
     * 返回系统id
     * 
     * @return SystemId 系统id
     */
    public String getSystemId() {
        return systemId;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉 设置系统 id
     * 
     * @param systemId 系统id
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setSystemId(String systemId) {
        this.systemId = systemId;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉 获取应用id
     * 
     * @return 应用id
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getAppId() {
        return appId;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉 设置应用 id
     * 
     * @param appId 应用id
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setAppId(String appId) {
        this.appId = appId;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉 获取服务器ip
     * 
     * @return 服务器ip
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getServerIp() {
        return serverIp;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉 设置服务器ip
     * 
     * @param serverIp 服务器ip
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setServerIp(String serverIp) {
        this.serverIp = serverIp;
    }
}
